This relates generally to software distributed shared memory systems.
In a distributed shared memory (DSM) system, each node in a cluster has access to shared memory in addition to access to each node's non-shared private memory. A software DSM (SDSM) may be implemented in the operating system or as a programming library. If implemented in the programming library, it is accessible to developers, but if it is implemented in the operating system, it is not accessible to developers.
Some SDSM systems rely on page faults for a number of things, including dirty recording. Dirty recording is a mechanism to precisely know which data has been modified and is, therefore, “dirty” since the last data synchronization. Dirty recording may be useful in reducing the amount of coherence data that must be transferred. The SDSM system protects the memory from being written and, thus, enforces subsequent writes to fault in a handler in which the precise dirty information is recorded.
However, a page fault, together with memory protection, are time consuming operations that can lead to lower performance dirty recording. Page faults may take up a relatively large ratio of the shared memory runtime overhead.